package com.zbkj.service.service.mszs;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.model.mszs.MszsRoom;
import com.zbkj.common.request.mszs.MszsCenterRequest;
import com.zbkj.common.request.mszs.MszsRoomRequest;
import com.zbkj.common.request.mszs.MszsRoomSelectRequest;
import com.zbkj.common.response.mszs.MszsRoomResponse;

import java.util.List;

/**
 * @description 民宿助手酒店房间信息-service接口
 * @author lingfe
 * @date 2023-11-16
 */
public interface MszsRoomService extends IService<MszsRoom> {

    /**
     * 房间--新增
     * @param request
     * @return
     */
    boolean insert(MszsRoomRequest request);

    /**
     * 房间--修改
     * @param request
     * @return
     */
    boolean update(MszsRoomRequest request);

    /**
     * 批量修改房间入住状态
     * @param requests
     * @return
     */
    boolean upRoomStatus(List<MszsRoom> requests);

    /**
     * 房间--删除
     * @param id
     * @return
     */
    boolean delete(Integer id);

    /**
     *根据主键 id 查询
     * @param id
     * @return
     */
    MszsRoomResponse load(Integer id);

    /**
     * 酒店房间列表
     * @param request
     * @return
     */
    List<MszsRoom> pageList(MszsRoomSelectRequest request);


    /**
     * 所有房间列表
     * @param request
     * @return
     */
    List<MszsRoomResponse> roomPageList(MszsRoomSelectRequest request);


    /**
     * 移动端-根据酒店ID统计房间数量
     * @param request
     * @return
     */
    Integer rooms(MszsCenterRequest request);

    /**
     * 根据状态-获取房间信息
     * @param status 房间状态
     * @return list
     */
    List<MszsRoom> getWhereStatusList(Integer status);

    /**
     * 根据酒店id和状态-获取房间信息
     * -单条数据
     * @param jdId    酒店id
     * @param status 房间状态
     * @return MszsRoom
     */
    MszsRoom getWhereStatusOne(String jdId,Integer status);

    /**
     * 所有未入住房间列表
     * @param request
     * @return
     */
    List<MszsRoomResponse> notCheckInList(MszsRoomSelectRequest request);

    /**
     * 已入住房间记录列表
     * @param request
     * @return
     */
    List<MszsRoomResponse> checkInList(MszsRoomSelectRequest request);


}
